package com.example.dbcms.service;

import com.example.dbcms.domain.Residents;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface ResidentService {
    /**
     * 查询所有用户
     * 得到分页结果
     * @return
     */
    PageInfo<Residents> selectAllResidents(Residents residents);

    /**
     * 条件查询用户信息
     *
     * @param mapCondition
     * @return
     */
    List<Residents> selectResidentsByCondition(Map<String, String> mapCondition);

    /**
     * 查询所有楼号
     *
     * @return
     */
    List<String> selectAllBuildingNo();

    /**
     * 查询所有房号
     *
     * @return
     */
    List<String> selectAllRoomNo();

    /**
     * 新增用户
     *
     * @return
     */
    int addUser(Residents residents);

    /**
     * 通过用户id删除用户
     *
     * @param id
     * @return
     */
    int deleteUserById(int id);

    /**
     * 通过用户信息更改用户数据
     *
     * @param residents
     * @return
     */
    int updateUser(Residents residents);


    /**
     * 普通用户修改数据
     * 只能修改用户名、性别、家庭人数、联系方式、工作单位
     * @param residents
     * @return
     */
    int updateUserByUser(Residents residents);

    /**
     * 通过id得到resident信息
     * @param id
     * @return
     */
    Residents getResidentById(int id);

    /**
     * 通过list删除多条数据
     * @param ids
     * @return
     */
    int deleteMultipleResident(List<Integer> ids);

    /**
     * 通过userid获得resident
     * @param userId
     * @return
     */
    Residents getResidentByUserId(int userId);
}
